地图投影
- 地球椭球体:用来描述地球这个不规则的球体 ORZ
- 大地参照系:用来确定地心到椭球体表面的体系,常用的有WGS-84,但是各个地区为了最好的表现出自己的地貌特征,选用的参照系不同,如北美选择NAD27,欧洲选择ED50等等
- 大地坐标系 (Geographic Coordiante System):大地参考系是一个系统,而大地坐标系就是参考系里用来表示具体位置的坐标系统。可以笼统的把 大地参考系 和 大地坐标系 看作一个系统,简称*“大地系 (geographic)”*.
- 一般在大地系 GCS 的 world 分类中有 WGS84, 在North America 分类中有 NAD27
- web中常使用 GCS-WGS-84-web-mercator (102100),如百度,ArcGIS。但是中国地图存在人为坐标偏移,俗称“火星坐标”,不能简单的使用Google等地图。
- TODO:
- 大地系的单位是 degress 表示地心到*0度经线(本初子午线)和0度纬线(赤道)*的角度
- 投影坐标系 (Project Coordinate System): 和大地系相对应的坐标系统,表示将椭球体投影到平面上以后的平面坐标系,可以分平面直角坐标系和平面极坐标系,常用的是平面直角坐标系。我来把投影坐标系简称为*“投影系(Project)”*。在投影系里,单位一般是米或者千米,由 X/Y 来表示。
- 墨卡托投影: 等角圆柱投影,经纬线正交,常用于航海,不会迷失方向
- 高斯-克吕格投影:等角椭圆柱投影,经纬线变弯
- UTM投影:通用横轴墨卡托投影,类似墨卡托,用于军用和地球资源卫星
Web-GIS
理论
1. scale 和 resolution
在影像切片过程中,每一层Level包含了一个resolution参数和一个scale参数 Scale表示的是比例尺,即地图上的一厘米代表着实际上的多少厘米。例如地图上1厘米代表实地距离500千米,可写成:1 ∶ 50,000,000或写成:1/50,000,000。 Resolution表示的是分辨率。Resolution 的实际含义代表当前地图范围内,1像素代表多少地图单位(X地图单位/像素),地图单位取决于数据本身的空间参考。可见Resolution跟 dpi有关系(dpi代表每英寸的像素数),跟地图的单位也有关系。
1像素代表多少个实际距离?
现在假设地图的坐标单位是米,dpi为96 1英寸=2.54厘米; 1英寸=96像素; 如果当前地图比例尺为1:125000000,则代表图上1米等于实地125000000米; 1英寸=0.0254米=96像素 1像素=0.0254/96 米 1:1:125000000 的地图里就是 125000000 * 0.0254 / 96 = 33072.9166666667米
什么时候用 scale 和 resolution
当数据库为平面坐标系统时,此时系统中所需的比例尺应该从scale中取得。 当数据库为经纬度坐标系统时,此时系统中所需的比例尺应该从resolution中取得。此时的resolution直接代表了地图上一像素等于实际中的多少度。
2. 地图金字塔
在切图(Tile)过程中,文件的组织其实是按照瓦片的级别(level)、行(col)、列(row)号来组织的。 标准的WMS请求中也涉及到行列号的换算,WMS请求中有一个Bbox的参数,而这个参数也与行列号的换算有关系。 标准的WMTS请求中,TILEMATRIX、TILEROW、TILECOL这三个参数代表的就是瓦片的级别、行、列号。
行列号的计算
3. 离线瓦片请求
3.1 离线松散瓦片
L01 + R000002f6 + C00000409 (十六进制八位数)
3.2 ArcGIS 离线紧凑式瓦片(.bundle/.bundlx)
L02 + R1180 + C0a00 (R/C / 180 转16进制 四位数)
4. 在线瓦片请求
4.1 WMS 服务 (web map service)
利用具有地理空间信息的数据制作地图。返回的是地图图像,而非地图数据
- GetCapabilities: 返回服务级别 meta data 
- GetMap: 根据请求参数在服务器端进行检索,服务器返回一个地理参数确定的图像,可以是GIF,JPG,PNG 甚至 SVG 格式
- GetFeatureInfo: 根据请求参数返回特殊要素信息,以HTML,GML 甚至 ASCII 的形式
拆解URL http://172.18.0.154:7001/ServiceRight/proxy/f446aabb04a59af336901290d615e16b/xzcg/WMS/XZ500DLG_BZWGS84? LAYERS=XZ500DLG_BZWGS84& FORMAT=image/gif& SERVICE=WMS& VERSION=1.1.1& REQUEST=GetMap& STYLES=& SRS=EPSG:4326& WIDTH=256& HEIGHT=256& bbox=117.21879147492814,34.240704396544345,117.22000975886715,34.24192268048341 WMS请求是一种可以动态出图的请求,原则上它可以显示原始图像在任意比例尺下的地图,它不像瓦片服务,只能显示切图时所设定好的比例尺下的的地图。 在二次开发中,直接使用提供的WMS类是非常简单的,只需要提供显示的范围和需要显示的级别数即可,此类的内部会自动的划分每一个级别的比例尺,而WMS是动态出图的,所以完全可以支持这种方式。
4.2 WFS: web feature service 网络要素服务
描述地理要素级别的数据共享和数据操作,可以实现对单个地理要素的现实和编辑
- GetCapabilities: 返回mate data,描述了该服务可以提供的要素类型和允许的操作
- DescribeFeatureType: 返回能够提供的地图要素的GML文档
- GetFeature: 根据查询条件,获取相应的地理要素
- Transaction: 为事物请求提供服务
- LockFeature: (可序列化事务能力)
- GetGmlObject:
4.3 WCS: web coverage service 网络覆盖服务
将地理信息和数据作为“覆盖物”,在网络上进行交换
4.4 WMTS 服务 (web map tile service)
故名思议,不同于之前的WMS的动态出图,WMTS服务是基于瓦片思想的。 WMTS一样支持提供一定的标准服务,如GetCapabilities (切图的详细配置), GetTile (获取切片) 拆解URL (天地图) http://srv.zjditu.cn/ZJEMAP_2D/wmts?SERVICE=WMTS& VERSION=1.0.0& REQUEST=GetTile& LAYER=ZJEMAP& FORMAT=image/png& TILEMATRIXSET=TileMatrixSet0& TILEMATRIX=17& STYLE=default& TILEROW=21747& TILECOL=109282 固定格式: URL+“&TILEMATRIX=”+level+“&TILEROW=”+row+“&TILECOL=”+col
实战:GeoServer
安装
mac环境:
确保java环境,安装JDK。出现因JAVA环境原因导致服务启动失败的情况,考虑清除JAI文件。
下载geoserver installer 启动服务即可
初识基本
- 但凡发布任何数据或服务,首先添加项目独有的 workspace
- 其次,添加一个 Store (数据源) 为该项目提供数据支持,一个项目里可以有多个store,每一个store对应一个数据源
- 在添加完数据源后,可以选择任何 spatial dataset 发布称为一个 Layer
-